/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package q10.Functii.FunctiiElementare;

/**
 *
 * @author valicu
 */

import q10.Functii.Functie;
/**
 * clasa Putere trateaza functia algebrica putere,si mosteneste clasa
 * Functie
 *
 */
public class Putere extends Functie{
	public static double putere=3;
	/**
	 * functia calcul(double aux1) calculeaza valoarea functiei intr-un anumit pct
	 * @param aux1-primeste ca argument o variabila double reprezentand
	 * valoarea in care dorim sa calculam valoarea functiei
	 * @return returneaza un double reprez valoarea fucntiei


	public static double calcul(double aux1)
	{
	return Math.pow(aux1,putere);
	}
	/**
	 * returneaza chiar valoarea argumentului functiei

	public double calcul()
	{
	if (fStang == null)
	System.exit(1);
	return calcul(fStang.calcul());
	}
	/**
	 * returneaza un string reprezentand derivarea functiei

	public String derivare()
	{
	if (fStang == null)
	System.exit(1);
	return Produs.concatTermens(fStang.derivare(),
			Double.toString(putere)+"*"+fStang.toString()+"^"+Double.toString(putere-1));

			}
	/**
	 * calculeaza valoarea derivatei intr-un anumit punct

	public double calculDerivata()
	{
	if (fStang == null)
	System.exit(1);
	return Produs.Calcul(fStang.calculDerivata(),putere*Math.pow(fStang.calcul(), putere-1));
	}
	public String toString()
	{
	if (fStang == null)
	System.exit(1);
	return concatTermeni(fStang.toString());
	}
	/**
	 * este folosita pentru construirea unui sir de caractere reprez
	 * numele fuctiei si argumentul acesteia
	 * @param aux1 primeste ca argument un string reprezentang
	 * argu,emtul functiei
	 * @return returneaza un string reprezentand numele functiei
	 */
	public String concatTermeni(String aux1)
	{
	String aux;
	int nrP;
	nrP = aux1.charAt(0) == '(' ? 0 : 2;
	aux = "pow";
	if (nrP != 0) aux += "(";
	aux += aux1;
	if (nrP != 0) aux += ")";
	return aux;
	}
	/*public double calculeazaValoare() {
		return this.calcul();
	}*/
}

